---
title: Determine anniversary rate date
summary: Determines a policy period's anniversary rate date by checking both WCIS and non-WCIS policy-period sources.
status: draft
owner: SAIF Claims BOF team
last_reviewed: 2026-08-21
library: SAIF.Business.Policy
reference_type: embedded
operation_id: OP-POL-004
trigger: Caller reads PolicyInformation.AnniversaryRateDate
---

# Determine anniversary rate date

Determines the anniversary rate date (ARD) for a policy period by querying `POLICY_PERIOD` unioned with `POLICY_PERIOD_NON_WCIS`.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-POL-004 |
| **Trigger** | Caller reads `PolicyInformation.AnniversaryRateDate(inDPI, inPolicyNumber, inPolicyPeriodEffectiveDate)` |
| **Inputs** | Data portal info, policy number, policy-period effective date |
| **Outputs** | `Date` |
| **Primary components** | `PolicyInformation.AnniversaryRateDate` |
| **Entry point** | `SAIF.Business.Policy\PolicyInformation.vb` |

## Steps

1. Caller reads `PolicyInformation.AnniversaryRateDate(inDPI, inPolicyNumber, inPolicyPeriodEffectiveDate)`.
2. A scalar request is built with `SQL.PolicyPeriodARD` ([SQL-004](../sql/SQL-004-policy-period-anniversary-rate-date.md), `UNION` across [POLICY_PERIOD](../database-tables.md#policy_period) / [POLICY_PERIOD_NON_WCIS](../database-tables.md#policy_period_non_wcis)), with the same two parameters.
3. Executed via `DAL.ProcessPortalRequest` and cast to `Date`.

## Process flow

```mermaid
flowchart TD
	Start([AnniversaryRateDate read]) --> S1[Build IDataRequest with SQL-004]
	S1 --> S2[Bind policy_num and period_eff_date]
	S2 --> S3[DAL.ProcessPortalRequest executes UNION query]
	S3 --> EndOk([Cast result to Date])
```

## Failure and edge-case behavior
- No null/`DBNull` guard on the cast result was observed in the reviewed source; behavior when no matching row exists is unconfirmed.**

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)

> **Note:** Statements marked with ** could not be confirmed; treat as unknown until verified.

## Sources
- `SAIF.Business.Policy\PolicyInformation.vb`
